#include "Log.hpp"
#include <memory>
#include "Threadpool.hpp"
#include "Task.hpp"

using namespace LogModule;
using namespace ThreadPoolModule;
using namespace A;
// int main()
// {
//      Enable_Console_Log_Strategy();

//     ThreadPool<task_t> *tp = new ThreadPool<task_t>();

//     //tp->Start();


//     int cnt = 10;
//     while(cnt)
//     {
//         tp->Equeue(Download);
//         ThreadPool<task_t>::GetInstance()->Equeue(Download);
//         sleep(1);
//         cnt--;
//     }
//     //tp->Stop();
//     //tp->Join();


    

//     //sleep(5);
//     ThreadPool<task_t>::GetInstance()->Stop();
//     //sleep(100);

//     //sleep(5);
//     ThreadPool<task_t>::GetInstance()->Join();
//     //std::unique_ptr<LogStrategy> strategy = std::make_unique<ConsoleLogStrategy>();
//     // std::unique_ptr<LogStrategy> strategy = std::make_unique<FileLogStrategy>();
//     // strategy->SyncLog("hello log!");
//     //logger(LogLevel::DEBUG,"main.cc",10) << "hello world";

//     // Enable_Console_Log_Strategy();

//     // LOG(LogLevel::DEBUG) << "hello world " << 3.141;
//     // LOG(LogLevel::DEBUG) << "hello world " << 3.142;

//     // Enable_File_Log_Strategy();
//     // LOG(LogLevel::DEBUG) << "hello world " << 3.143;
//     // LOG(LogLevel::DEBUG) << "hello world " << 3.144;
//     return 0;
// }

int main()
{
    A::B a("小明");
    return 0;
}